package com.fy.market.activity.repository;

import com.fy.market.activity.model.entity.RaffleActivityAccountDayEntity;

/**
 * 抽奖活动账户表-日次数 仓储接口
 * @author fwq
 * @date 2025-10-11
 */
public interface IRaffleActivityAccountDayRepository {

    /**
     * 根据用户ID和活动ID查询日次数账户
     * @param userId 用户ID
     * @param activityId 活动ID
     * @param day 日期
     * @return 日次数账户实体
     */
    RaffleActivityAccountDayEntity queryRaffleActivityAccountDayByUserIdAndActivityId(Integer userId, Integer activityId, String day);

    /**
     * 扣减日次数
     * @param userId 用户ID
     * @param activityId 活动ID
     * @param day 日期
     * @return 扣减结果
     */
    boolean decrRaffleActivityAccountDayCount(Integer userId, Integer activityId, String day);

    /**
     * 创建日次数账户
     * @param raffleActivityAccountDayEntity 日次数账户实体
     */
    void createRaffleActivityAccountDay(RaffleActivityAccountDayEntity raffleActivityAccountDayEntity);

    /**
     * 更新日次数账户
     * @param raffleActivityAccountDayEntity 日次数账户实体
     */
    void updateRaffleActivityAccountDay(RaffleActivityAccountDayEntity raffleActivityAccountDayEntity);
}
